#!/bin/bash

# 创建新表脚本 - 适用于Ubuntu系统 & MySQL

# 设置数据库变量
DB_NAME="test_db"
TABLE_NAME="users"
MYSQL_USER="root"
# 如果root有密码，在下方填写（出于安全考虑建议运行时输入）
MYSQL_PASS=""

# 检查MySQL服务状态
check_mysql_service() {
    if ! systemctl is-active --quiet mysql; then
        echo "MySQL服务未运行，正在尝试启动..."
        sudo systemctl start mysql || {
            echo "无法启动MySQL服务，请手动检查"
            exit 1
        }
    fi
}

# 安装MySQL（如）
install_mysql() {
    if ! command -v mysql &> /dev/null; then
        echo "正在安装MySQL..."
        sudo apt update
        sudo apt install -y mysql-server mysql-client

        # 安全初始化（交互式）
        echo "请根据提示完成MySQL安全设置："
        sudo mysql_secure_installation
    fi
}

# 执行SQL命令
execute_sql() {
    local sql_command="$1"
    if [ -z "$MYSQL_PASS" ]; then
        sudo mysql -u $MYSQL_USER -e "$sql_command"
    else
        sudo mysql -u $MYSQL_USER -p$MYSQL_PASS -e "$sql_command"
    fi
}

# 主流程
main() {
    # install_mysql
    check_mysql_service

    # 创建数据库（如不存在）
    execute_sql "CREATE DATABASE IF NOT EXISTS $DB_NAME;"

    # 创建表结构
    echo "正在创建数据表..."
    execute_sql "USE $DB_NAME; \
        CREATE TABLE IF NOT EXISTS $TABLE_NAME ( \
            id INT AU PRIMARY KEY, \
            balance DECIMAL(10,2) NOT NULL DEFAULT 0.00, \
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP \
        ) ENGINE=InnoDB;"

    # 验证结果
    if execute_sql "USE $DB_NAME; SHOW TABLES LIKE '$TABLE_NAME';" | grep -q "$TABLE_NAME"; then
        echo "✅ 数据表 $TABLE_NAME 创建成功"
        echo "表结构："
        execute_sql "USE $DB_NAME; DESCRIBE $TABLE_NAME;"
    else
        echo "❌ 数据表创建失败"
        exit 1
    fi
}

# 执行主程序
main